(de javac (Cls Ext Impl . @)
   (let (J (pack "..\\tmp\\" Cls ".java")  C (pack "..\\tmp\\" Cls ".class"))
      (call 'cmd "/c" "mkdir" "..\\tmp\\")
      (out J
         (while (args)
            (prinl "import " (next) ";") )
         (prinl "public class " Cls
            (and Ext (pack " extends " @))
            (and Impl (pack " implements " (glue ", " Impl)))
            " {"  )
         (here "/**/")
         (prinl "}") )
      (call "javac" "-O" "-g:none" J)
      (push1 '*Bye (list 'call "cmd" "/c" "del" J C)) ) )